// Variables de la gestion de l\'evenement
var Mouse = {"x":0,"y":0};

// Demande de gestion de l\'evenement à NetScape
if(navigator.appName.substring(0,3) == "Net") {
	document.captureEvents(Event.MOUSEMOVE);
}

// Gestion de l\'evenement
var OnMouseMoveEventHandler=function() {}
var OnMouseMove = function (e)
{
	Mouse.x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
	Mouse.y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
	if (Mouse.x < 0) {Mouse.x=0;}
	if (Mouse.y < 0) {Mouse.y=0;}
	OnMouseMoveEventHandler(e)
}

try {
	document.attachEvent("onmousemove", OnMouseMove, true);
} catch (ex) {
	document.addEventListener("mousemove", OnMouseMove, true);
}

document.onmousemove = function(){
	document.getElementById("positionMouse").innerHTML = "x: "+Mouse.x+"<br />y: "+Mouse.y;
};
/*
 * handleH.js (c) Fil 2007, plugin pour jQuery ecrit
 * a partir du fichier resize.js du projet DotClear
 * (c) 2005 Nicolas Martin & Olivier Meunier and contributors
 */

jQuery.fn.handleW = function(o){
	var me = jQuery(this);
	var cache = me.children(".handlecache");
	//cr�ation de l'�lement et son CSS
	me.children(".handleW").css({
		position:'absolute',
		background:'transparent url("../image/selectl.png") no-repeat scroll 0%',
		cursor:'w-resize',
		height:'100%',
		width:'15px',
		right:'-17px',
		top:'0px'
	}).css(o.cssW);
	//fonction associer � la redimmensioner du cadre
	me.children(".handleW,.handleD").mousedown( function(e){
		var cacheY = jQuery('body').height();
		var cacheX = jQuery('body').width();
		cache.css({width:cacheX+'px',height:cacheY+'px'});//apparition du cadre de cache
		var l = me.width();
		var x = e.clientX;
		var moveHandler = function(e){
			me
			.width(Math.max(o.minX, e.clientX + l - x));
		};
		var upHandler = function(e){
			//supprime les effets lier au clic
			jQuery('html')
			.unbind('mousemove',moveHandler)
			.unbind('mouseup',upHandler);
			cache.css({width:"0",height:"0"});//disparition du cadre de cache
			o.callspackW();//fonction d�finit par l'utilisateur
		};
		jQuery('html')
		.bind('mousemove', moveHandler)
		.bind('mouseup', upHandler);
	});
}
jQuery.fn.handleH = function(o){
	var me = jQuery(this);
	var cache = me.children(".handlecache");
	//cr�ation de l'�lement et son CSS
	me.children(".handleH").css({
		position:'absolute',
		background:'transparent url("../image/selecth.png") no-repeat scroll 45%',
		cursor:'s-resize',
		height:'17px',
		width:'100%',
		bottom:'-17px',
		right:'0'
	}).css(o.cssH);
	//fonction associer � la redimmensioner du cadre
	me.children(".handleH,.handleD").mousedown( function(e){
		var cacheX = jQuery('body').width();
		var cacheY = jQuery('body').height();
		cache.css({width:"100%",height:"100%"});//apparition du cadre de cache
		var h = me.height();
		var y = e.clientY;
		var moveHandler = function(e){
			me
			.height(Math.max(o.minY, e.clientY + h - y));
		};
		var upHandler = function(e){
			//supprime les effets lier au clic
			jQuery('html')
			.unbind('mousemove',moveHandler)
			.unbind('mouseup',upHandler);
			cache.css({width:"0",height:"0"});//disparition du cadre de cache
			o.callspackH();//fonction d�finit par l'utilisateur
		};
		jQuery('html')
		.bind('mousemove', moveHandler)
		.bind('mouseup', upHandler);
	});
}
jQuery.fn.handle = function(option){
	jQuery(this).each(function(i){
		var o = {
			handleH:true,						//barre bas
			handleW:true,						//barre cot�
			handleD:true,						//barre diagonale
			background:'',						//fond de couleur des div d'extantion de taille
			animate:{opacity:'show'},		//active animation (d�faut  -> opacity 0 � 100)
			animateTimeOut:1000,				//dur�e de l'animate
			cssW:{},								//extantion du css pour la barre du bas
			cssH:{},								//extantion du css pour la barre de cot�
			cssD:{},								//extantion du css pour la barre en diagonale
			css:{},								//css de l'element parents
			minX:0,								//min en x de la taille de la fenetre
			minY:0,								//min en y de la taille de la fenetre
			callspack:function(){},			//fonction de callspack
			callspackW:function(){},		//fonction de callspack apr�s une redimension horizontal
			callspackH:function(){}			//fonction de callspack apr�s une redimension vertical
		};
			jQuery.extend(o, option);

		var me = jQuery(this);
		me.css({position:'relative'}).css(o.css);
		//cr�ation du div de cache
		me.append('<div class="handlecache"></div>')
		me.children(".handlecache").css({
			position:'absolute',
			top:'0',
			left:'0',
			width:'0',
			height:'0',
			zIndex:'5000'
		});

		//cr�ation du div de double changement de taille
		if(o.handleD && o.handleH && o.handleW){
			me.append('<div class="handleD"></div>');
			me.children(".handleD").css({
				position:'absolute',
				background:'transparent url("../image/selectnw.png") no-repeat',
				cursor:'nw-resize',
				height:'15px',
				width:'15px',
				bottom:'-17px',
				right:'-17px',
				zIndex:"500"
			}).css(o.cssD);
		}
		if(o.handleH){
			me.append('<div class="handleH"></div>').handleH(o);
		}
		if(o.handleW){
			me.append('<div class="handleW"></div>').handleW(o);
		}
		//animation pour faire apparaitre les div
		$(this).children(".handleW,.handleH,.handleD").hide().animate(o.animate,o.animateTimeOut);
		//active la fonction de callspack
		o.callspack();
	});
}

jQuery.fn.resizehandleZ = function() {
	return this.each(function() {
		var me = jQuery(this);
		me.before(
			jQuery('<div class="resizehandleZ"></div>')
			.css({position:"fixed",bottom:"45px",backgroundColor:"black",zIndex:"5000",width:"100%",textAlign:"center",cursor:'s-resize',height:"5px"})
			.bind('mousedown', function(e) {
			var h = me.height();
			var y = e.clientY;
			var moveHandler = function(e) {
				var H = Math.max(45, -e.clientY + h + y);
				me.height(H);
				$(".resizehandleZ").css({bottom:H});
				$("#contenu").css({paddingBottom:H});
			};
			var upHandler = function(e) {
				jQuery('html')
				.unbind('mousemove',moveHandler)
				.unbind('mouseup',upHandler);
			};
			jQuery('html')
			.bind('mousemove', moveHandler)
			.bind('mouseup', upHandler);
			})
		);
	});
}

function inisialiseHandle(){
	$(".handle").css({
		border:"1px dolid black",
		width:"98%",
		height:"200px",
		'float':"left",
		margin:"0px 15px 15px 0px"
	});
	$(".handleH, .handleW, .handleD").css({
		border:"1px solid black"
	});
	$(".handleD").css({
		borderTop:"none",
		borderLeft:"none"
	});
	$("object, .object").css({
		width:"100%",
		height:"100%"
	});
}

$(document).ready(function () {
	$("input.envoiPostTextarea").click(function() {
		$.ajax({
			type: "POST",
			url: "_dBug/createDBug.php",
			data: "time="+$(this).attr("id")+"&explique="+$("#expliquePage").val()+"&fichier="+$("#expliquePage").attr("data"),
			dataType: "html",
			success: function(msg){alert(msg);
				if(msg == 0) alert("Fichier enregistrer.");
				else if(msg == 1) alert("Donnée incorectes.");
				else if(msg == 2) alert("Donnée incorectes.");
				else if(msg == 3) alert("Le fichier à été modifier pendant votre saisie (veuille le copiez puis actualiser la page pour le renvoyer...)");
				else if(msg == 4) alert("Impossible d'enregistrer");
				else if(msg == 5) alert("Vous êtes déconnecter, copier votre message puis reconnecter vous le renvoyer");
			},
			error: function(msg){
				alert( "erreur:\n"+$(msg).html());
			}
		});
		return false;
	});
	$("#RBTDB").click(function() {
		$.ajax({
			url: "_dBug/_page/"+$(this).attr("href")+".txt",
			dataType: "html",
			success: function(msg){
				$("#expliquePage").val(msg);
			},
			error: function(msg){
				alert( "erreur:\n"+$(msg).html());
			}
		});
		return false;
	});

	$("#pied").append('<div id="dBugChargeSite"><form action="#" id="charge_url"><label for="url_distant">affiche le site : </label><input type="text" name="url_distant" id="url_distant" /><input type="submit" /></form></div><div id="site"></div><div id="fermer" style="clear:both"></div>').css({minHeight:"45px"}).resizehandleZ();
	$("#contenu").css({paddingBottom:"45px"});


	$("#precisions").parent().append("<div></div>");
	$("#precisions").width("100%").height("100%").appendTo($("#precisions").parent().children("div"));
	$("#precisions").parent("div").handle({minX:'100'});
	$("#expliquePage").parent().append("<div></div>").width("98%");
	$("#expliquePage").width("100%").height("100%").appendTo($("#expliquePage").parent().children("div"));
	$("#expliquePage").parent("div").handle({minX:'100'});
	inisialiseHandle();

	$("input[value='Envoyer le rapport']").mousedown(function(){
		alert("bouton appuyer \\o/");
		/*envoyer les info du form ainsi que les tableau de dBug dans un fichier php qui va l'enregitrer dans un fichier texte sous la forme d'un fichier html
		rajouter un tableau de la liste des bug avec posibiliter d'afficher le rapport avec un clic*/
// 	$("#dBug").children("table").each(function(){
// 		alert($(this).html());
// 		$("#pied").append($(this).html());
// 	});
	});

	obId=0;
	$("#charge_url")
	.submit(function(){
		var url=$(this).children('input').val();

		//v�rifi si l'adresse poss�de le http://www. ou www. ou aucun des 2
		if(url.substring(0,7)=='http://'){
			url=url;
		}
		else if(url.substring(0,4)=='www.'){
			url='http://'+url;
		}
		else if(url.substring(0,11)!='http://www.'){
			url='http://www.'+url;
		}
		else
		{
			return false;
		}

		var me = $('#fermer').append('<div id="fermeObjetCharge'+obId+'"><a href="#'+obId+'" title="'+obId+'">fermer fenetre '+obId+'</a></div>');
		$('#fermeObjetCharge'+obId).mousedown(function(){
			var objet = $(this).children('a').attr("title");
			var id=$('#ObjetCharge'+objet);
			id.empty();
			id.remove();

			id=$('#fermeObjetCharge'+objet);
			id.empty();
			id.remove();
			return false;
		});

		$('#site').append('<div class="handle" id="ObjetCharge'+obId+'"><div class="object"><object data="'+url+'" type="text/html" standby="Chargement en cours"></object></div></div>');
		$('#site .handle').handle({minX:'100'});

		inisialiseHandle();

		obId++;
		return false;
	});
});